import Request from '@/utils/luch-request/index.js'


const getTokenStorage = () => {
  let token = ''
  try {
    token = uni.getStorageSync('token')
  } catch (e) {
  }
  return token
}


const http = new Request()
http.setConfig((config) => { /* 设置全局配置 */
  // config.baseURL = 'https://apinew.fywzpm.cn' /* 根域名不同 */
   config.baseURL = 'https://thyey.xiaocao7.com' /* 根域名不同 */
   config.header = {
    ...config.header,
  }
  return config
})


http.interceptors.request.use((config) => { /* 请求之前拦截器。可以使用async await 做异步操作 */
  config.header = {
    ...config.header,
  }
  config.data = config.data || {}
  console.log('interceptors-request-config', config)
  // 根据custom参数中配置的是否需要token，添加对应的请求头
  if (config?.custom?.auth) {
  	config.header['Authorization'] = 'Bearer ' + getTokenStorage();
	console.log('interceptors-request-header',config.header)
  }
  return config
}, (config) => {
  return Promise.reject(config)
})


http.interceptors.response.use(async (response) => { /* 请求之后拦截器。可以使用async await 做异步操作  */
	const data = response.data
	// 自定义参数
	const custom = response.config?.custom
	//data.success 不等于true 弹出错误
	if (!data.code || data.code != 200) {
		// 如果没有显式定义custom的toast参数为false的话，默认对报错进行toast弹出提示
		if (custom.toast !== false) {
			uni.$u.toast(data.msg)
		}
		// 如果需要catch返回，则进行reject(默认catch返回)
		if (custom.catch !== false) {
			console.log('response-custom.catch')
			return Promise.reject(data)
		} else {
			console.log('response-custom.catch-else')
			// 否则返回一个pending中的promise，请求不会进入catch中
			return new Promise(() => {})
		}
	}
	console.log('response-success',response)
  return data === undefined ? {} : data
}, (response) => { // 请求错误做点什么。可以使用async await 做异步操作
	console.log('response-failed',response)
  return Promise.reject(response)
})

export {
  http,
}
